<?php

/*
 *	CONTROLE FINANÇAS PESSOAIS
 *
 *	Classe: sfuncao
 *
 *	Descrição :
 * 		- Persiste objetos de sfuncao
 *
 *	Desenvolvedor :
 * 		- Edgard Fantini Júnior - efantinij@gmail.com
 *
 *	Histórico:
 *	- v.14/05/2012 - Edgard Fantini Júnior -efantinij@gmail.com
 *		- versão inicial gerada pelo gerarAplicacao.sh
 *
 * FRAMWORK: edframe - Copyleft (cc) 2012 EDMAR Sistemas
*/


class sfuncao extends TRecord
{
		const TABLENAME = 'sfuncao' ;

		var $resp ;

		/*
		 * método get_sfuncao()
		 * busca um objeto na base de dados
		 */
		function get_sfuncao()
		{
			$criteria = TRecord::MontaCriteria($this);
			$repository = new TRepository('sfuncao');
			return $repository->load($criteria, $this->colunas);
		}

		/*
		 * método get_alterarIncluir()
		 * persiste objetos na base de dados
		 */
		function get_alterarIncluir()
		{
			try
			{
				$audi = '' ;
				$fazer = '' ;
				if (empty($_SESSION['userId']))
					throw new Exception("Sem seção. Faça novo login no ".$_SESSION['nomeAplicacao']) ;

				$this->dat = date("Y-m-d", time()) ;
				$this->use = $_SESSION['userId'] ;

				if ($this->func >= 1)
				{
					/* buscando registro anterior para auditar */
					$b = new sfuncao;
					$b->func = $this->func ;
					$b->colunas = TRecord::nomeColunasObjeto($this) ;
					$anterior = $b->sfuncao ;
					$col = explode(",",$b->colunas) ;
					for($i = 0 ; $i < count($col) ; $i++)
					{
						$audi .= $col[$i] ."=". $anterior[0]->$col[$i]."#" ;
						if ($anterior[0]->$col[$i] != $this->$col[$i])
							$fazer = 'sim' ;
					}
					if ($fazer == 'sim' )
					{ /* incluindo auditoria */
						$a = new sauditoria;
						$a->funcao = $_SESSION['tela'] ;
						$a->tabela = 'sfuncao' ;
						$a->regis = $this->func ;
						$a->descr = utf8_decode($audi) ;
						$a->alterarIncluir ;

						if ($a->resp[0] == 'erro')
							throw new Exception($a->resp[1]) ;

						/* alterando o objeto desta classe */
						$this->store('func') ;

						$this->resp[1] = "Registo ".$this->func." alterado com sucesso" ;
						$this->resp['registroAlterado'] = $this->func ;
					}
				}
				else
				{
					$this->ativo = "A" ;
					$this->store('func');

					$a = new sfuncao;
					$a->colunas = "func" ;
					$a->order = "func desc limit 1" ;
					$ultimo = $a->sfuncao ;

					$this->resp[1] = "Registo ".$ultimo[0]->func." adicionado com sucesso" ;
					$this->resp['registroIncluido'] = $ultimo[0]->func ;
				}
				$this->resp[0] = "sucesso" ;
			}
			catch (Exception $e)
			{
				$this->resp = MformTryCache::objReturn($e) ;
				TTransaction::rollback() ;
			}
		}
}
